package com.code.common.util.converts;

import java.lang.annotation.Annotation;

/**
 * 对象属性转换上层接口
 *
 * @author tangyifei
 */
public interface BeanFieldConverter<A extends Annotation, T> {

    /**
     * 初始化
     *
     * @param ann 相关的注解
     */
    void initialize(A ann);

    /**
     * 是否需要转换
     *
     * @param field 需要转换的字段
     * @return 是否需要转换结果
     */
    boolean isNeedConvert(T field);

    /**
     * 转换字段相关的方法
     *
     * @param field 字段
     * @return 转换后的字段
     */
    T convert(T field);
}
